package eteam.aps.common.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;

@ApiModel("公共实体")
public abstract class ParentEntity {

	/**
	 * 审核状态【0草稿】
	 */
	public static final int FSTATE_DRAFT = 0;

	/**
	 * 审核状态【审核中】
	 */
	public static final int FSTATE_AUDITING = 10;

	/**
	 * 审核状态【作废/逻辑删除】
	 */
	public static final int FSTATE_DELETED = 20;

	/**
	 * 审核状态【审核通过】
	 */
	public static final int FSTATE_PASSED = 30;

	/**
	 * 内码， 表的主键 ---雪花算法产生的long字符串 not null
	 */
	@TableField("FId")
	@ApiModelProperty("内码")
	protected String fId;

	/**
	 * 该条记录的备注
	 */
	@TableField("FRemark")
	@ApiModelProperty("备注信息")
	@JsonIgnore
	protected String fRemark;

	/**
	 * 账套，创建时候创建人所在的 【部门】，不是冗余字段，因为 创建人 可能换部门；外键，关联 system模块的 org 的 forgid not null
	 */
	@TableField("FBookCode")
	@ApiModelProperty("账套")
	@JsonIgnore
	protected String fBookCode;

	/**
	 * 审核状态【0草稿；10审核中；20作废；30审核通过】not null
	 */
	@TableField("FState")
	@ApiModelProperty("审核状态【0草稿；10审核中；20作废；30审核通过】")
	@JsonIgnore
	protected int fState;

	/**
	 * 创建人---外键，关联 system模块的 user 的 fuserid not null
	 */
	@TableField("FCreateUserId")
	@ApiModelProperty("创建人Id")
	@JsonIgnore
	protected String fCreateUserId;

	/**
	 * 创建时间 not null
	 */
	@TableField("FCreatorTime")
	@ApiModelProperty("创建时间")
	@JsonIgnore
	protected LocalDateTime fCreatorTime;

	/**
	 * 最近修改人---外键，关联 system模块的 user 的 fuserid
	 */
	@TableField("FLastModifyUserId")
	@ApiModelProperty("修改人Id")
	@JsonIgnore
	protected String fLastModifyUserId;

	/**
	 * 修改时间 not null， 默认是 创建时间 用于 时间排序
	 */
	@TableField("FLastModifyTime")
	@ApiModelProperty("修改时间")
	@JsonIgnore
	protected LocalDateTime fLastModifyTime;

	/**
	 * 审核人---外键，关联 system模块的 user 的 fuserid
	 */
	@TableField("FAuditUserId")
	@ApiModelProperty("审核人Id")
	@JsonIgnore
	protected String fAuditUserId;

	/**
	 * 审核时间
	 */
	@TableField("FAuditorTime")
	@ApiModelProperty("审核时间")
	@JsonIgnore
	protected LocalDateTime fAuditorTime;

	public String getfId() {
		return fId;
	}

	public void setfId(String fId) {
		this.fId = fId;
	}

	public String getfBookCode() {
		return fBookCode;
	}

	public void setfBookCode(String fBookCode) {
		this.fBookCode = fBookCode;
	}

	public int getfState() {
		return fState;
	}

	public void setfState(int fState) {
		this.fState = fState;
	}

	public String getfCreateUserId() {
		return fCreateUserId;
	}

	public void setfCreateUserId(String fCreateUserId) {
		this.fCreateUserId = fCreateUserId;
	}

	public LocalDateTime getfCreatorTime() {
		return fCreatorTime;
	}

	public void setfCreatorTime(LocalDateTime fCreatorTime) {
		this.fCreatorTime = fCreatorTime;
	}

	public String getfLastModifyUserId() {
		return fLastModifyUserId;
	}

	public void setfLastModifyUserId(String fLastModifyUserId) {
		this.fLastModifyUserId = fLastModifyUserId;
	}

	public LocalDateTime getfLastModifyTime() {
		return fLastModifyTime;
	}

	public void setfLastModifyTime(LocalDateTime fLastModifyTime) {
		this.fLastModifyTime = fLastModifyTime;
	}

	public String getfAuditUserId() {
		return fAuditUserId;
	}

	public void setfAuditUserId(String fAuditUserId) {
		this.fAuditUserId = fAuditUserId;
	}

	public LocalDateTime getfAuditorTime() {
		return fAuditorTime;
	}

	public void setfAuditorTime(LocalDateTime fAuditorTime) {
		this.fAuditorTime = fAuditorTime;
	}

	public String getfRemark() {
		return fRemark;
	}

	public void setfRemark(String fRemark) {
		this.fRemark = fRemark;
	}

}